The subject matter discussed in the background section is not to be assumed as prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section is not assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also correspond to claimed embodiments.
Within large scale computing systems, such as the on-demand cloud based computing system, which is discussed below in greater detail, there is a need to ensure that executing dataflows do not interfere with one another. This is especially problematic when there are multiple dataflows needing to execute which are of the same type, and consequently, exhibit a distinct risk of triggering a write conflict, in which two or more disparate flows of a same type write to the same underlying data store, without either of the processes detecting such a conflicting write event. Such write conflicts must be avoided as they can lead to record corruption and inaccurate query results as well as other problems, such as unexpected application behavior.
Such dataflows are also referred to as work flows or Business Process Management “BPM” flows.
One way of eliminating the potential for write conflicts is to either serialize or queue and release dataflows having a same data type, such that no two dataflows of a same type are permitted to execute at the same time. In such a way, any write to an underlying data store will be completed and committed prior to or upon the completion of a first dataflow and upon the release or serialized execution of a second dataflow of the same type, the recently written data will be retrieved, processed, and any subsequent re-writes to that same location will therefore be based on accurate and up to date data, thus negating any such write conflict.
While such a solution is fully functional and valid, the serialization of such dataflow executions by type or the queue and release of such dataflows creates a bottleneck in the system which because increasingly restrictive as the size of the system grows and as the number of users, organizations, and concurrent processing demands tends to increase over time.
While the serializing and queue then release approach works well for small scale systems, an on-demand cloud base computing architecture serving literally millions of simultaneous users and tens of thousands of businesses, partners, clients, and other organizations, becomes crippled by such an approach, as there is an artificial introduction of latency into the system, which in turn inhibits overall system performance and leads to customer dissatisfaction due to unnecessarily lengthy processing times.
The present state of the art may therefore benefit from the systems, methods, and apparatuses for implementing concurrent dataflow execution with write conflict protection within a cloud based computing environment as is described herein.